package com.qiuyuliantu.base.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.qiuyuliantu.common.annotation.Excel;
import com.qiuyuliantu.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 目标模板对象 qiu_goals_model
 *
 * @author ruoyi
 * @date 2025-03-22
 */
public class QiuGoalsModel extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 唯一标识符 */
    private Long id;

    /** 目标名称 */
    @Excel(name = "目标名称")
    private String goalName;

    /** 目标类型 */
    @Excel(name = "目标类型")
    private String goalType;

    /** 关联用户ID */
    @Excel(name = "关联用户ID")
    private String userIds;

    /** 权重排序 */
    @Excel(name = "权重排序")
    private Long sequence;

    /** 目标描述 */
    @Excel(name = "目标描述")
    private String description;

    /** 目标状态 */
    @Excel(name = "目标状态")
    private String status;

    /** 目标开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "目标开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 目标结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "目标结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 提醒日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "提醒日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reminderDate;

    /** 通知邮箱 */
    @Excel(name = "通知邮箱")
    private String notificationMail;

    /** 通知是否已发送，默认为 `false`（未发送） */
    @Excel(name = "通知是否已发送，默认为 `false`", readConverterExp = "未=发送")
    private Integer notificationSent;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setGoalName(String goalName)
    {
        this.goalName = goalName;
    }

    public String getGoalName()
    {
        return goalName;
    }
    public void setGoalType(String goalType)
    {
        this.goalType = goalType;
    }

    public String getGoalType()
    {
        return goalType;
    }
    public void setUserIds(String userIds)
    {
        this.userIds = userIds;
    }

    public String getUserIds()
    {
        return userIds;
    }
    public void setSequence(Long sequence)
    {
        this.sequence = sequence;
    }

    public Long getSequence()
    {
        return sequence;
    }
    public void setDescription(String description)
    {
        this.description = description;
    }

    public String getDescription()
    {
        return description;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setStartDate(Date startDate)
    {
        this.startDate = startDate;
    }

    public Date getStartDate()
    {
        return startDate;
    }
    public void setEndDate(Date endDate)
    {
        this.endDate = endDate;
    }

    public Date getEndDate()
    {
        return endDate;
    }
    public void setReminderDate(Date reminderDate)
    {
        this.reminderDate = reminderDate;
    }

    public Date getReminderDate()
    {
        return reminderDate;
    }
    public void setNotificationMail(String notificationMail)
    {
        this.notificationMail = notificationMail;
    }

    public String getNotificationMail()
    {
        return notificationMail;
    }
    public void setNotificationSent(Integer notificationSent)
    {
        this.notificationSent = notificationSent;
    }

    public Integer getNotificationSent()
    {
        return notificationSent;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("goalName", getGoalName())
            .append("goalType", getGoalType())
            .append("userIds", getUserIds())
            .append("sequence", getSequence())
            .append("description", getDescription())
            .append("status", getStatus())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("reminderDate", getReminderDate())
            .append("notificationMail", getNotificationMail())
            .append("notificationSent", getNotificationSent())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("delFlag", getDelFlag())
            .toString();
    }

    public void setUpdateTime(Date nowDate) {
    }
}
